home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 2010 April / PCWorld0410.iso / hity wydania / Ubuntu 9.10 PL / karmelkowy-koliberek-desktop-9.10-i386-PL.iso / casper / filesystem.squashfs / usr / share / system-config-printer / userdefault.pyc (.txt) < prev    next >
Python Compiled Bytecode  |  2009-10-28  |  5KB  |  152 lines

  1. # Source Generated with Decompyle++
  2. # File: in.pyc (Python 2.6)
  3.  
  4. import gtk
  5. import os
  6. import subprocess
  7.  
  8. class UserDefaultPrinter:
  9.     
  10.     def __init__(self):
  11.         
  12.         try:
  13.             lpoptions = os.environ['HOME']
  14.         except KeyError:
  15.             
  16.             try:
  17.                 lpoptions = '/home/' + os.environ['USER']
  18.             except KeyError:
  19.                 lpoptions = None
  20.             except:
  21.                 None<EXCEPTION MATCH>KeyError
  22.             
  23.  
  24.             None<EXCEPTION MATCH>KeyError
  25.  
  26.         if lpoptions:
  27.             lpoptions += '/.cups/lpoptions'
  28.         
  29.         self.lpoptions = lpoptions
  30.  
  31.     
  32.     def clear(self):
  33.         if not self.lpoptions:
  34.             return None
  35.         
  36.         try:
  37.             opts = file(self.lpoptions).readlines()
  38.         except IOError:
  39.             self.lpoptions
  40.             self.lpoptions
  41.             return None
  42.  
  43.         for i in range(len(opts)):
  44.             if opts[i].startswith('Default '):
  45.                 opts[i] = 'Dest ' + opts[i][8:]
  46.                 continue
  47.             self.lpoptions
  48.         
  49.         file(self.lpoptions, 'w').writelines(opts)
  50.  
  51.     
  52.     def get(self):
  53.         if not self.lpoptions:
  54.             return None
  55.         
  56.         try:
  57.             opts = file(self.lpoptions).readlines()
  58.         except IOError:
  59.             self.lpoptions
  60.             self.lpoptions
  61.             return None
  62.  
  63.         for i in range(len(opts)):
  64.             if opts[i].startswith('Default '):
  65.                 rest = opts[i][8:]
  66.                 slash = rest.find('/')
  67.                 if slash != -1:
  68.                     space = rest[:slash].find(' ')
  69.                 else:
  70.                     space = rest.find(' ')
  71.                 return rest[:space]
  72.         
  73.  
  74.     
  75.     def set(self, default):
  76.         p = subprocess.Popen([
  77.             'lpoptions',
  78.             '-d',
  79.             default], stdin = file('/dev/null'), stdout = file('/dev/null', 'w'), stderr = subprocess.PIPE)
  80.         (stdout, stderr) = p.communicate()
  81.         exitcode = p.wait()
  82.         if exitcode != 0:
  83.             raise RuntimeError(exitcode, stderr.strip())
  84.         exitcode != 0
  85.  
  86.     
  87.     def __repr__(self):
  88.         return '<UserDefaultPrinter (%s)>' % repr(self.get())
  89.  
  90.  
  91.  
  92. class UserDefaultPrompt:
  93.     
  94.     def __init__(self, set_default_fn, refresh_fn, name, title, parent, primarylabel, systemwidelabel, clearpersonallabel, personallabel):
  95.         self.set_default_fn = set_default_fn
  96.         self.refresh_fn = refresh_fn
  97.         self.name = name
  98.         dialog = gtk.Dialog(title, parent, gtk.DIALOG_MODAL | gtk.DIALOG_DESTROY_WITH_PARENT | gtk.DIALOG_NO_SEPARATOR, (gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL, gtk.STOCK_OK, gtk.RESPONSE_OK))
  99.         dialog.set_default_response(gtk.RESPONSE_OK)
  100.         dialog.set_border_width(6)
  101.         dialog.set_resizable(False)
  102.         hbox = gtk.HBox(False, 12)
  103.         hbox.set_border_width(6)
  104.         image = gtk.Image()
  105.         image.set_from_stock(gtk.STOCK_DIALOG_QUESTION, gtk.ICON_SIZE_DIALOG)
  106.         image.set_alignment(0, 0)
  107.         hbox.pack_start(image, False, False, 0)
  108.         vboxouter = gtk.VBox(False, 6)
  109.         primary = gtk.Label()
  110.         primary.set_markup('<span weight="bold" size="larger">' + primarylabel + '</span>')
  111.         primary.set_line_wrap(True)
  112.         primary.set_alignment(0, 0)
  113.         vboxouter.pack_start(primary, False, False, 0)
  114.         vboxradio = gtk.VBox(False, 0)
  115.         systemwide = gtk.RadioButton(label = systemwidelabel)
  116.         vboxradio.pack_start(systemwide, False, False, 0)
  117.         clearpersonal = gtk.CheckButton(clearpersonallabel)
  118.         alignment = gtk.Alignment(0, 0, 0, 0)
  119.         alignment.set_padding(0, 0, 12, 0)
  120.         alignment.add(clearpersonal)
  121.         vboxradio.pack_start(alignment)
  122.         vboxouter.pack_start(vboxradio, False, False, 0)
  123.         personal = gtk.RadioButton(group = systemwide, label = personallabel)
  124.         vboxouter.pack_start(personal, False, False, 0)
  125.         hbox.pack_start(vboxouter, False, False, 0)
  126.         dialog.vbox.pack_start(hbox, False, False, 0)
  127.         systemwide.set_active(True)
  128.         clearpersonal.set_active(True)
  129.         self.userdef = UserDefaultPrinter()
  130.         clearpersonal.set_sensitive(self.userdef.get() != None)
  131.         self.systemwide = systemwide
  132.         self.clearpersonal = clearpersonal
  133.         self.personal = personal
  134.         systemwide.connect('toggled', self.on_toggled)
  135.         dialog.connect('response', self.on_response)
  136.         dialog.show_all()
  137.  
  138.     
  139.     def on_toggled(self, button):
  140.         if self.userdef.get() != None:
  141.             pass
  142.         self.clearpersonal.set_sensitive(self.systemwide.get_active())
  143.  
  144.     
  145.     def on_response(self, dialog, response_id):
  146.         if response_id != gtk.RESPONSE_OK:
  147.             dialog.destroy()
  148.             return None
  149.         dialog.destroy()
  150.  
  151.  
  152.